<script>
if (window.testRunner) {
    testRunner.waitUntilDone();
    testRunner.dumpAsText();
    testRunner.setShouldStayOnPageAfterHandlingBeforeUnload(true);
}

// JavaScript onbeforeunload dialogs require a user gesture.
if (window.eventSender) {
    eventSender.mouseMoveTo(5, 5);
    eventSender.mouseDown();
    eventSender.mouseUp();
}

_confirmationDialogDisplayedOnce = false;

window.onbeforeunload = function() {

    if (window._confirmationDialogDisplayedOnce)
        return "Click 'Leave Page'";

    window.setTimeout(function() {
        if (window.testRunner)
            testRunner.setShouldStayOnPageAfterHandlingBeforeUnload(false);

        window.setTimeout(function() {
            document.getElementById("console").innerHTML = "FAIL";
            if (window.testRunner)
                testRunner.notifyDone();
        }, 1000);

        document.forms[0].submit();
    }, 0);

    window._confirmationDialogDisplayedOnce = true;

    return "Click 'Stay on Page'";
};
</script>

<p>This tests that submitting a form a second time after canceling the first submission in a onbeforeunload handler is allowed. To test manually, follow the instructions in the JavaScript confirmation dialogs.</p>

<div id="console"></div>

<form action="resources/pass-and-notify-done.html" method="POST">
</form>

<script>
document.forms[0].submit();
</script>
